2 cosas.
El copy tiene la posibilidad de establecer que columnas serán ingresadas. Según la documentación del copy puedes escoger las columnas a ser leídas.
Cita: COPY tablename [ ( column [, ...] ) ]
FROM { 'filename' | STDIN }
sería
COPY tabla(columna1,columna2) FROM ruta_archivo
De esa forma no hay problema con lo que dices.
Si no te funciona, te digo por experiencia, el comando copy es excesivamente rapido. He hecho importaciones de 3'500.000 rregistros y te cuento que no se me demora ni 30 segundos. Entonces te recomiendo pruebes un archivo grandecito y estimes cuanto se puede demorar. Si el tiempo es infimo, el bloqueo de la tabla es una buena opción, ya que si otro usuario llega en ese milisegundo de instante, llegará a una cola de peticiones que esperará a que termine el proceso para ejecutarse y no verás comprometida la consistencia de la base de datos.
Nos cuentas como te va