<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def invalidates_reflection_cache(f):
 """Invalidate the SQLAlchemy reflection cache if `f` performs an operation that mutates database or table metadata such as ``CREATE TABLE``, ``DROP TABLE``, etc. Parameters f : callable A method on :class:`ibis.sql.alchemy.AlchemyClient` """


    @functools.wraps(f)
    def wrapped(self, *args, **kwargs):
        result = f(self, *args, **kwargs)

        # only invalidate the cache after we've succesfully called the wrapped
        # function
        self._reflection_cache_is_dirty = True
        return result

    return wrapped