Du skal bruge et indeksprædikat for at bruge et delvist unikt indeks. Læs i dokumentationen:
index_prædikat
Bruges til at tillade slutning af delvise unikke indekser. Ethvert indeks, der opfylder prædikatet (som faktisk ikke behøver at være delvist indeks), kan udledes. Følger CREATE INDEX-formatet.
I dette tilfælde:
INSERT INTO key_value_pair (key, value, is_active) VALUES ('temperature','20', false)
ON CONFLICT (key) WHERE is_active
DO UPDATE
SET value = '33', is_active = true;