Denna fråga och svaret kommer att vara av intresse för dig:Infoga, på duplikat uppdatera i PostgreSQL?
I grund och botten, använd antingen två frågor (gör valet, om det hittas uppdatera, annars infoga), vilket inte är den bästa lösningen (två skript som körs samtidigt kan ge dubbla infogningar), eller gör som ovanstående frågor föreslår - gör en lagrad procedur/ funktion för att göra det (detta är förmodligen det bästa alternativet och enklaste).