I’ve typically used event attribute binding in the eventex when I need it for use in the eventex and use binding in the pre block otherwise.
But that’s just personal preference.
One function difference: if you bind in the eventex as shown the rule will not select unless the
token attributes are present, whereas when binding in the pre block the rule will select whether the attributes are present or not.
So use the first if you want to require the attributes and the second if they're optional.