Med PostgreSQL 9.5 er dette nu native funktionalitet (som MySQL har haft i flere år):
INDSÆT ... VED KONFLIKT GØR INTET/OPDATERE ("UPSERT")
9.5 giver understøttelse af "UPSERT"-operationer. INSERT er udvidet til at acceptere en ON CONFLICT DO UPDATE/IGNORE-klausul. Denne klausul specificerer en alternativ handling, der skal tages i tilfælde af en formodet duplikatovertrædelse.
...
Yderligere eksempel på ny syntaks:
INSERT INTO user_logins (username, logins)
VALUES ('Naomi',1),('James',1)
ON CONFLICT (username)
DO UPDATE SET logins = user_logins.logins + EXCLUDED.logins;