Als alternatieve benadering kun je een upsert doen zonder een functie door een insert + update te gebruiken met waar-clausules om ze alleen in het juiste geval te laten slagen. Bijv.
update mytable set col1='value1' where (col2 = 'myId');
insert into mytable select 'value1', 'myId' where not exists (select 1 from mytable where col2='myId');
Wat zou voorkomen dat er veel aangepaste postgres-specifieke functies zouden zijn.