syntax error on mathematical operation postgresql
@ypercube pointed out the immediate cause for the syntax error. But there is a lot more:

CREATE OR REPLACE FUNCTION pg_temp.atualiza_qtfunc()
  RETURNS trigger AS 
$f_at_qtfunc$ --f_at_func = função atualiza quantidade funcionários
BEGIN
   CASE TG_OP
   WHEN 'INSERT' THEN 
      UPDATE tabemissora SET qtfunc = qtfunc + 1
      WHERE  some_id = NEW.some_id;  -- reference NEW row
   WHEN 'DELETE' THEN
      UPDATE tabemissora SET qtfunc = qtfunc - 1
      WHERE  some_id = OLD.some_id;  -- reference OLD row
   END CASE;
END
$f_at_qtfunc$ LANGUAGE plpgsql;



Remove the SELECT completely, you can refer to the column itself in the UPDATE statement directly.
Consequently, remove the needless variable declaration altogether.
Don't UPDATE without WHERE condition, that would alter all rows in the table, which is most probably not what you want. io made the command depend on the inserted / deleted row at hand.
I used CASE instead of IF to simplify. Optional.
Don't quote the language name.


Even with the fixed function, your whole approach may be a bad idea in a multi-user environment. Multiple concurrent inserts / deletes for the same parent-ID can produce race conditions that this kind of function is not able to resolve. If that can happen, you'd rather do the count after the fact in a view or materialized view and drop the trigger altogether.