Writes the given object to the cache file as pickle. The cache file with
           its path is created if needed.

def write(self, obj):
        """Writes the given object to the cache file as pickle. The cache file with
           its path is created if needed.
        """
        if self.verbose:
            self._warnings("cache miss for {0}", self._cache_id_desc())
        if self._start_time is not None:
            elapsed = get_time() - self._start_time
        else:
            elapsed = None
        out = self._write(self._cache_id_obj, elapsed, obj)
        self._out = out
        self.force_to_disk(self.get_size() > self._ram_quota)
        self._last_access = get_time()
        return self._read(out)[2]