Postgresql performance issues when issuing many small inserts and updates one at a time
In order to avoid overloading my server, the requests are queued and
  handled one at a time.


That's the problem right there. You are not avoiding but causing overloading this way. Single row INSERT / UPDATE is dramatically more expensive than doing the same en bloc. Each statement has to be planned and executed separately. Depending on missing details there may be transaction overhead and even connection overhead, too.

Try to run multi-row INSERT / UPDATE commands instead. Or use COPY, or one of the fastest options would be to define a foreign table and fetch all data from a remote DB directly in a single SQL command (if that's at all possible).

Or depending on details, some other replication method may fit your needs. 

This is how you update multiple rows at once:


Update multiple rows in a table from another table when condition exists


And here is how to do that from a CSV file:


How to update selected rows with values from a CSV file in Postgres?