Non è infatti possibile modificare effettivamente statement_timeout
dall'interno di una funzione server, deve essere eseguita lato client prima che venga inviata la query di primo livello.
Vedi una domanda simile su DBA.SE:Perché "SET LOCAL statement_timeout" non funziona come previsto con le funzioni PostgreSQL?
o questo thread nella mailing-list di postgres, che risale al 2007, ma la risposta negativa vale ancora con la versione attuale:
statement_timeout non funziona in plpgsql in base alla progettazione?