Para ejecutar una sentencia DDL (Data Definition Language) que incorpore una variable dinamica, es necesario hacer uso de execute.
Quedaría así
Código SQL:
Ver originalCREATE OR REPLACE FUNCTION modificar()
RETURNS intege AS $$
DECLARE
valor INTEGER;
BEGIN
SELECT MAX("ID") INTO valor FROM esquema."TABLA";
valor:=valor+1;
EXECUTE 'ALTER SEQUENCE esquema."TABLA_ID_seq" RESTART ' || valor;
RETURN valor;
END;
$$ LANGUAGE plpgsql;
saludos