Un U-umlaut minuscule est 0xfc dans ISO 8859-1 (AKA Latin-1) mais 0xfc n'est pas un caractère UTF-8 valide. Le problème est que vous avez une chaîne Latin-1 que vous essayez de traiter comme UTF-8 et que PostgreSQL s'en plaint à juste titre.
Corrigez la source de données pour vous envoyer UTF-8 ou, si elle vous enverra toujours Latin-1, corrigez vous-même l'encodage avec quelque chose comme :
utf_8_string = latin_1_string.force_encoding('iso8859-1').encode('utf-8')
puis travaillez avec le utf_8_string
version.