Вы помните, что UPDATE id = id в постгресе является изменением, хотя "ничего же не меняется"? На самом-то деле из-за триггеров поменяться очень даже может.
Т.е. вам придётся где-то воткнуть WHERE (col1, col2, ..., colN) IS DISTINCT FROM (SELECT col1, ...., colN).