docs: def save(self, subject):
          """
          Saves the subject's state to the subject's ``Session`` only
          if session storage is enabled for the subject.  If session storage is
          not enabled for the specific Subject, this method does nothing.
  
          In either case, the argument Subject is returned directly (a new
          ``Subject`` instance is not created).
  
          :param subject: the Subject instance for which its state will be
                          created or updated
          :type subject:  subject_abcs.Subject
  
          :returns: the same Subject passed in (a new Subject instance is
                    not created).
          """
          if (self.is_session_storage_enabled(subject)):
              self.merge_identity(subject)
          else:
              msg = ("Session storage of subject state for Subject [{0}] has "
                     "been disabled: identity and authentication state are "
                     "expected to be initialized on every request or "
                     "invocation.".format(subject))
              logger.debug(msg)
  
          return subject