U moet een indexpredikaat gebruiken om een gedeeltelijke unieke index te gebruiken. Lees in de documentatie:
index_predicaat
Gebruikt om gevolgtrekking van gedeeltelijke unieke indexen mogelijk te maken. Alle indexen die voldoen aan het predikaat (die eigenlijk geen gedeeltelijke indexen hoeven te zijn) kunnen worden afgeleid. Volgt het CREATE INDEX-formaat.
In dit geval:
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;