CREATE OR REPLACE FUNCTION testtable()
RETURNS void AS
'
BEGIN
  FOR i IN 2..41 LOOP
    FOR j IN 1..5 LOOP
        IF j = 1  THEN
            INSERT INTO a(test1, test2) VALUES(i,1);
        END IF;
        INSERT INTO b(test3, test4) VALUES(i,j);
    END LOOP;
  END LOOP ;
  COMMIT;
END;
'
 LANGUAGE plpgsql ;
select testtable();

このエラーが発生してしまいます

cannot begin/end transactions in PL/pgSQL

原因がわからなくて困っています
教えてください。