code: def update(self, data):
          
          result = None
          if data:
              pipe = self._client.pipeline(transaction=False)
              for k in data.keys():
                  pipe.exists(self.get_key(k))
              exists = pipe.execute()
              exists = exists.count(True)
              _rk, _dumps = self.get_key, self._dumps
              data = {
                  _rk(key): _dumps(value)
                  for key, value in data.items()}
              pipe.mset(data)
              pipe.hincrby(self._bucket_key, self.key_prefix, len(data)-exists)
              result = pipe.execute()[0]
          return result
docs: :see::meth:RedisMap.update