Questa domanda e risposta ti interesseranno:Inserisci, su duplicato aggiornare in PostgreSQL?
Fondamentalmente, usa due query (esegui la selezione, se trova l'aggiornamento, altrimenti inserisci), che non è la soluzione migliore (due script eseguiti contemporaneamente potrebbero fornire inserimenti duplicati), oppure fai come suggeriscono le domande precedenti:crea una procedura memorizzata/ funzione per farlo (questa è probabilmente l'opzione migliore e più semplice).