Con un ejemplo
   
Código SQL:
Ver originalpruebas=> CREATE TABLE tabla(id INTEGER);
CREATE TABLE
 
pruebas=> CREATE OR REPLACE FUNCTION insertar(INTEGER)
pruebas->   RETURNS text AS
pruebas-> $BODY$
pruebas$> DECLARE
pruebas$> i INTEGER;
pruebas$> stmnt  text;
pruebas$> inser text;
pruebas$> BEGIN
pruebas$> stmnt = 'insert into tabla values(' || $1 || ')';
pruebas$> EXECUTE stmnt;
pruebas$> RETURN 'INSERTO';
pruebas$> END; $BODY$
pruebas->   LANGUAGE 'plpgsql' VOLATILE;
CREATE FUNCTION
pruebas=> SELECT *FROM tabla;
PRUEBAS
 id
----
(0 filas)
 
pruebas=> SELECT insertar(500);
 PRUEBAS
 insertar
----------
 INSERTO
(1 fila)
 
pruebas=> SELECT *FROM tabla;
PRUEBAS
 id
-----
 500
(1 fila)
 
pruebas=> CREATE OR REPLACE FUNCTION insertar1(text)
pruebas->   RETURNS text AS
pruebas-> $BODY$
pruebas$> BEGIN
pruebas$> EXECUTE $1;
pruebas$> RETURN 'INSERTO';
pruebas$> END; $BODY$
pruebas->   LANGUAGE 'plpgsql' VOLATILE;
CREATE FUNCTION
pruebas=> SELECT insertar1('INSERT INTO tabla VALUES(800)');
  PRUEBAS
 insertar1
-----------
 INSERTO
(1 fila)
 
pruebas=> SELECT *FROM tabla;
PRUEBAS
 id
-----
 500
 800
(2 filas)
  
saludos