def METHOD_NAME(self, *, on_done: Callable[["SupervisorJob"], None] | None = None):
    """Start the job in the current task.
    This can only be called if the parent ID matches the job running in the current task.
    This is to ensure that each asyncio task can only be doing one job at a time as that
    determines what resources it can and cannot access.
    """
    if self.done is not None:
        raise JobStartException("Job has already been started")
    if _CURRENT_JOB.get(None) != self.parent_id:
        raise JobStartException("Job has a different parent from current job")
    self.done = False
    token: Token[UUID] | None = None
    try:
        token = _CURRENT_JOB.set(self.uuid)
        yield self
    finally:
        self.done = True
        if token:
            _CURRENT_JOB.reset(token)
        if on_done:
            on_done(self)