docs: def set(self, key, val, timeout=None, using=None):
          """
          Set will be using the generational key, so if another thread
          bumps this key, the localstore version will still be invalid.
          If the key is bumped during a transaction it will be new
          to the global cache on commit, so it will still be a bump.
          """
          if timeout is None:
              timeout = self.timeout
          if self.is_managed(using=using) and self._patched_var:
              self.local[key] = val
          else:
              self.cache_backend.set(key, val, timeout)