There is no need for the user to define the format as long as lib/pq is encoding/decoding the data. It will fail if the user defines another DELIMITER, etc. since we don't get that information from the server back. Only the BINARY format is catched. Not sure if we should try to parse the statement and warn the user for unsupported parameters.

For bulk loading of existing text/binary data: Maybe an API like for the LISTEN/NOTIFY is more appropriate for this use case?