Jako alternatywne podejście możesz zrobić upsert bez funkcję za pomocą instrukcji insert + update z klauzulami where, które sprawią, że zadziałają tylko we właściwym przypadku. Np.
update mytable set col1='value1' where (col2 = 'myId');
insert into mytable select 'value1', 'myId' where not exists (select 1 from mytable where col2='myId');
Co pozwoliłoby uniknąć wielu niestandardowych funkcji specyficznych dla postgresa.