Som ett alternativt tillvägagångssätt kan du göra en upsert utan en funktion genom att använda en insert + update med where-satser för att få dem att bara lyckas i rätt fall. T.ex.
update mytable set col1='value1' where (col2 = 'myId');
insert into mytable select 'value1', 'myId' where not exists (select 1 from mytable where col2='myId');
Vilket skulle undvika att ha massor av anpassade postgres-specifika funktioner.