docs: def get_or_create_author(self, name: str) -> Author:
          """Get an author by name, or creates one if it does not exist."""
          author = self.object_cache_author.get(name)
  
          if author is not None:
              self.session.add(author)
              return author
  
          author = self.get_author_by_name(name)
  
          if author is not None:
              self.object_cache_author[name] = author
              return author
  
          author = self.object_cache_author[name] = Author.from_name(name=name)
          self.session.add(author)
          return author