L'échappement d'un guillemet simple en SQL (standard) se fait en utilisant deux guillemets simples, par exemple
'Peter''s house'
Je préfère utiliser l'explicite ARRAY[..] qui a également besoin d'un guillemet de moins, donc votre insert pourrait être écrit comme :
INSERT into t1 (columnname)
VALUES (ARRAY['str1', 'str2''with quote symbol']);
Dans les versions antérieures à 9.1, Postgres était autorisé à utiliser \ comme caractère d'échappement alternatif, mais enregistrerait un avertissement s'il était utilisé. Depuis 9.1, le paramètre de configuration standard_conforming_strings est activé et donc le \ ne peut pas être utilisé comme échappement d'un guillemet simple.