Jeśli używasz Postgresa 9.5 lub nowszego (co zakładam, że tak, ponieważ został wydany w styczniu 2016), jest bardzo przydatny ON CONFLICT
Klauzula, której możesz użyć:
INSERT INTO mytable (id, col1, col2)
VALUES (123, 'some_value', 'some_other_value')
ON CONFLICT (id) DO NOTHING