code: def legacy_write(self, request_id, msg, max_doc_size, acknowledged, docs):
          
          if self.publish:
              duration = datetime.datetime.now() - self.start_time
              cmd = self._start(request_id, docs)
              start = datetime.datetime.now()
          try:
              result = self.sock_info.legacy_write(
                  request_id, msg, max_doc_size, acknowledged)
              if self.publish:
                  duration = (datetime.datetime.now() - start) + duration
                  if result is not None:
                      reply = _convert_write_result(self.name, cmd, result)
                  else:
                      # Comply with APM spec.
                      reply = {'ok': 1}
                  self._succeed(request_id, reply, duration)
          except OperationFailure as exc:
              if self.publish:
                  duration = (datetime.datetime.now() - start) + duration
                  self._fail(
                      request_id,
                      _convert_write_result(
                          self.name, cmd, exc.details),
                      duration)
              raise
          finally:
              self.start_time = datetime.datetime.now()
          return result
docs: A proxy for SocketInfo.legacy_write that handles event publishing.