Q:

Как вставить запись если её нет при обновлении данных (postgresql аналог replace mysql)? 

Вот есть запрос UPDATE, как его переписать, чтобы если в базе нет записи с этим id, она была создана.  Аналог replace или on duplicate key update
UPDATE directories_struct SET html=$1::text,css=$2::text WHERE id=$3::int

A:

INSERT INTO directories_struct (id, html, css)
VALUES ($3::int, $1::text, $2::text)
ON CONFLICT (id) DO UPDATE SET
html=$1::text,css=$2::text;

