Du måste använda ett indexpredikat för att använda ett partiellt unikt index. Läs i dokumentationen:
index_predikat
Används för att tillåta slutledning av partiella unika index. Alla index som uppfyller predikatet (som faktiskt inte behöver vara partiella index) kan härledas. Följer CREATE INDEX-formatet.
I det här fallet:
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;