Hago este tipo de cosas un poco (normalmente generando instrucciones de inserción/actualización).
Solo necesita usar la función de reemplazo para convertir todos los ' en '' . es decir, cámbielo a:
str_comment:='COMMENT ON COLUMN '||rec.table_name||'.'||rec.column_name
||' IS '''||REPLACE( rec.description,'''','''''')||'''; ' ;