I'm not a big fan of that solution.
If i understand properly you are relying on the fact that you are given the reference to the instance dictionary and that these tags will be added to that object, then the collector will pass a copy of the instance dictionary to the check method which will therefore contain these added tags. Is that right ?

If so, it's a bit too implicit in my opinion and should be done explicitly in the check method.
Does it make sense ?