UPDATE oder INSERT bei PostgreSQL

Morgen,
besteht eine Möglichkeit ein SQL-Statement für PostgreSQL zu bauen, welches einen Datensatz updatet falls er existiert oder einen neuen Einfügt, falls der gesuchte noch nicht existiert?

Ich hab irgendwo mal etwas wie folgendes gesehen:
UPDATE OR INSERT tabelle SET y=2, z=3 where x=4
(Das ging natürlich nur, wenn nach dem Primary Key gesucht wurde.)

Oder würde sich das per Trigger machen, dass eine Zeile vo dem UPDATE Befehl eingefügt wird, falls ncoh keine Zeile mit dem entsprechenden PK existiert?

Ich möchte einfach vermeiden, dass ich zwei Queries absetzen muss und dann von dem ersten die Rückgabe übeprüfen muss.

Vielleicht kann mir ja jemand weiterhelfen!
Danke!