De hecho, no es posible cambiar efectivamente statement_timeout
desde dentro de una función de servidor, debe hacerse del lado del cliente antes de que se envíe la consulta de nivel superior.
Vea una pregunta similar en DBA.SE:¿Por qué "SET LOCAL statement_timeout" no funciona como se esperaba con las funciones de PostgreSQL?
o este hilo en la lista de correo de postgres, que data de 2007, pero la respuesta negativa aún se aplica a la versión actual:
¿statement_timeout no funciona dentro de plpgsql por diseño?