Самым важным для меня является появление UPSERT. Вот уж чего не хватало простому программисткому народу.
Итак от к слов к делу
Код инсерта показан на примере таблицы users (uid, name).
Рабочий, готовый к копипасте код выглядит так:
insert into users (uid, name)
           values (1987, 'Светлана')
      on conflict (uid)
    do update set (uid, name) = (1988, 'Елена')
А теперь небольшие пояснения:
- После on conflict ОБЯЗАТЕЛЬНО нужно добавить имена столбцов в которых отслеживается конфликт. Wildcard запись (*) не поддерживается
- Естественно, в UPDATE нужно указать что обновлять update set (uid, name) = (1988, 'Елена')
 Кстати эта запись (uid, name) = (1988, 'Елена') очень удобна когда столбцов много и нужно все их обновить. Можно просто скопипасты в блок с UPDATE вместо кучи записей вида ключ=значение, ключ2=значение2
- Так же в on conflict должны быть указаны только те столбцы для которых установлены ограничения в БД