Você precisa usar um predicado de índice para usar um índice exclusivo parcial. Leia na documentação:
índice_predicado
Usado para permitir a inferência de índices exclusivos parciais. Quaisquer índices que satisfaçam o predicado (que na verdade não precisam ser índices parciais) podem ser inferidos. Segue o formato CREATE INDEX.
Nesse caso:
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;