Aqui te envio un ejemplo.
CREATE FUNCTION INSERTCARGOGUIA(char(2),char(6),char(8),char(6),char(6))
RETURNS Boolean
AS 'DECLARE
pcoddoc ALIAS FOR $1;
pnumguia ALIAS FOR $2;
pnumorden ALIAS FOR $3;
pcorrelativo ALIAS FOR $4;
pcodconfec ALIAS FOR $5;
BEGIN
INSERT INTO detdes(coddoc,numguia,numorden,correlativo,codestado,fechaing,codconfec) VALUES(pcoddoc,pnumguia,pnumorden,pcorrelativo,''01'',now(),pcodconfec);
UPDATE detorden Set coddoc = pcoddoc,numguia = pnumguia,codestado = ''01'' Where numorden = pnumorden And correlativo = pcorrelativo;
UPDATE guiaenvi SET sllevado = (sllevado + 1) Where coddoc = pcoddoc AND numguia = pnumguia;
RETURN ''t'';
END;'
LANGUAGE 'plpgsql';