Consulta sobre trigger

Hola gente de postgres.
Es mi primer mensaje en este sitio así que si le erro a algo espero me disculpen, es que estoy más verde que un aguacate :)
Mi tema es el siguiente:
Tengo un problema con mi trigger y quisiera que me ayuden.
Creo el siguiente trigger:
DROP TRIGGER IF EXISTS trgDisminuirCredito ON factura;
CREATE TRIGGER trgDisminuirCredito AFTER INSERT ON factura FOR EACH ROW
EXECUTE PROCEDURE DisminuirCredito();

DROP FUNCTION IF EXISTS DisminuirCredito();
CREATE OR REPLACE FUNCTION DisminuirCredito()
RETURNS TRIGGER AS
$BODY$
DECLARE
BEGIN
UPDATE sucursales s SET credito = (credito - f.NEW.montocobrado) FROM factura f WHERE s.id_sucursal = f.NEW.id_sucursal;
RETURN NULL;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;

Y al hacer el siguiente insert me da error:
INSERT INTO public.factura(
id_factura, id_agencia,
monto_con_comision, monto_sin_comision, monto_cobrado)
VALUES (nextval('factura_id_factura_seq'::regclass), 1,
110, 100, 120);

Eso arroja el siguiente error:
ERROR: falta una entrada para la tabla «new» en la cláusula FROM
LINE 1: ...onto_cobrado) FROM factura f WHERE s.id_sucursal = f.NEW.id_s...
^
QUERY: UPDATE sucursales s SET credito = (credito - f.NEW.monto_cobrado) FROM factura f WHERE s.id_sucursal = f.NEW.id_sucursal
CONTEXT: función PL/pgSQL disminuircredito() en la línea 4 en sentencia SQL
********** Error **********

ERROR: falta una entrada para la tabla «new» en la cláusula FROM
SQL state: 42P01
Context: función PL/pgSQL disminuircredito() en la línea 4 en sentencia SQL

Alguien puede ayudarme a resolver eso?
Muchas gracias desde ya!! ;)