Deze vraag en het antwoord zijn interessant voor u:Invoegen, op duplicaat bijwerken in PostgreSQL?
Gebruik in principe ofwel twee queries (doe de selectie, als deze wordt gevonden update, anders invoegen), wat niet de beste oplossing is (twee scripts die tegelijkertijd draaien kunnen dubbele invoegingen opleveren), of doe wat de bovenstaande vragen suggereren - maak een opgeslagen procedure/ functie om het te doen (dit is waarschijnlijk de beste optie en het gemakkelijkst).