def METHOD_NAME(self, ctx):
    """Create/update a topic/tutorial."""
    if not self.topic.exists():
        info("The topic %s does not exist. It will be created" % self.topic.name)
        self.topic.init_from_kwds(self.kwds)
        self.topic.create_topic_structure()
    if not self.kwds["tutorial_name"]:
        if self.kwds["slides"]:
            raise Exception("A tutorial name is needed to create the skeleton of a tutorial slide deck")
        if self.kwds["workflow"] or self.kwds["workflow_id"]:
            raise Exception("A tutorial name is needed to create the skeleton of the tutorial from a workflow")
        if self.kwds["zenodo_link"]:
            raise Exception("A tutorial name is needed to add Zenodo information")
    else:
        self.tuto = Tutorial(training=self, topic=self.topic)
        self.tuto.init_from_kwds(self.kwds)
        if not self.tuto.exists():
            info(f"The tutorial {self.tuto.name} in topic {self.topic.name} does not exist. It will be created.")
            self.tuto.create_tutorial(ctx)
    info("WARNING: Change the contributors/maintainers listed in the metadata of the new training ")
    info("before serving the website to fit the one listed in the CONTRIBUTORS.yaml file")