DML triggers are either defined as table level or as row level.
A table level trigger fires once for each operation on the table, so if you update 30 rows then that is one operation as far as a table trigger is concerned. Table triggers do not have insight into which rows are modified, but can be used to log the fact that an operation was carried out.
In this case you need a row level trigger, which requires “FOR EACH ROW” to be included in the trigger definition. The “REFERENCING” clause is optional if you do not want to change the way that you reference the new and old rows.
http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/triggers.htm#BABCIBBJ
Not sure what the point of the exercise here is, though. Have you considered just referencing fl1 instead of fl2?