docs: def add(self, target, args=None, kwargs=None, **options):
          """Add an Async job to this context.
  
          Takes an Async object or the arguments to construct an Async
          object as arguments.  Returns the newly added Async object.
          """
          from furious.async import Async
          from furious.batcher import Message
  
          if self._tasks_inserted:
              raise errors.ContextAlreadyStartedError(
                  "This Context has already had its tasks inserted.")
  
          if not isinstance(target, (Async, Message)):
              target = Async(target, args, kwargs, **options)
  
          target.update_options(_context_id=self.id)
  
          if self.persist_async_results:
              target.update_options(persist_result=True)
  
          self._tasks.append(target)
          self._options['_task_ids'].append(target.id)
  
          return target