docs: def _worker_method(self):
          """
          The body of the multi-put worker. Loops until
          :meth:`_should_quit` returns ``True``, taking tasks off the
          input queue, storing the object, and putting the result on
          the output queue.
          """
          while not self._should_quit():
              try:
                  task = self._inq.get(block=True, timeout=0.25)
              except TypeError:
                  if self._should_quit():
                      break
                  else:
                      raise
              except Empty:
                  continue
  
              try:
                  obj = task.object
                  if isinstance(obj, RiakObject):
                      rv = task.client.put(obj, **task.options)
                  elif isinstance(obj, TsObject):
                      rv = task.client.ts_put(obj, **task.options)
                  else:
                      raise ValueError('unknown obj type: %s'.format(type(obj)))
                  task.outq.put(rv)
              except KeyboardInterrupt:
                  raise
              except Exception as err:
                  errdata = (task.object, err)
                  task.outq.put(errdata)
              finally:
                  self._inq.task_done()