Como uma abordagem alternativa, você pode fazer um upsert sem uma função usando uma inserção + atualização com cláusulas where para torná-las bem-sucedidas apenas no caso correto. Por exemplo.
update mytable set col1='value1' where (col2 = 'myId');
insert into mytable select 'value1', 'myId' where not exists (select 1 from mytable where col2='myId');
O que evitaria ter muitas funções específicas do postgres personalizadas.