code: func (r *Runner) Resume(id bson.ObjectId) (err error) {
  	t, err := r.load(id)
  	if err != nil {
  		return err
  	}
  	if !t.done() {
  		debugf("Resuming %s from %q", t, t.State)
  		if err := flush(r, t); err != nil {
  			return err
  		}
  	}
  	if t.State == taborted {
  		return ErrAborted
  	} else if t.State != tapplied {
  		panic(fmt.Errorf("invalid state for %s after flush: %q", t, t.State))
  	}
  	return nil
  }
docs: // Resume resumes the transaction with id. It returns mgo.ErrNotFound
  // if the transaction is not found. Otherwise, it has the same semantics
  // of the Run method after the transaction is inserted.