But theirs are the AFTER triggers...
Control of recursion can be implemented at the "application" level: say, TRIG2 updates TABLE1 with some specific value (that would never come from another source of updates); TRIG1 checks that value and, if present, doesn't update TABLE2.