The important thing to remember is to use COPY .. FROM STDIN, not insert, for bulk loading into PostgreSQL. Most PostgreSQL drivers support COPY from the client, though it's not always available through generic database APIs. COPY commands typically write hundreds of thousands of rows per second on a large server/cluster. It's useful to write over multiple connections, but rarely more than ~16.
Worth noting that you pass in data in a proprietary binary format. [1] I've done it, not out of performance concerns, but because transcoding between proprietary binary formats with types is a lot saner than the alternative. [1]: https://www.postgresql.org/docs/current/sql-copy.html#id-1.9...
The other thing to keep in mind is that text or CSV can be much more compact for data sets with many small integers or NULLs. On the other hand, the binary format is much more compact for timestamps and floating point numbers. In general, binary format has lower parsing overhead.