Un U-umlaut minuscolo è 0xfc in ISO 8859-1 (AKA Latin-1) ma 0xfc non è un carattere UTF-8 valido. Il problema è che hai una stringa Latin-1 che stai cercando di trattare come UTF-8 e PostgreSQL si sta giustamente lamentando.
Correggi l'origine dati per inviarti UTF-8 o, se ti invierà sempre Latin-1, correggi tu stesso la codifica con qualcosa del tipo:
utf_8_string = latin_1_string.force_encoding('iso8859-1').encode('utf-8')
e poi lavora con utf_8_string
versione.