code: def _commit(self, path, title, source_id=None, description=None, author=None, language=None, license=None, copyright_holder=None, license_description=None, thumbnail=None):
          
          node = self.map.get(path)
          self.map.update({path: {
              'title': title or node and node.get('path'),
              'source_id': source_id or node and node.get('source_id'),
              'description': description or node and node.get('description'),
              'author': author or node and node.get('author'),
              'language': language or node and node.get('language'),
              'license': license or node and node.get('license'),
              'copyright_holder': copyright_holder or node and node.get('copyright_holder'),
              'license_description': license_description or node and node.get('license_description'),
              'thumbnail': thumbnail or node and node.get('thumbnail'),
          }})
docs: _commit: Adds folder/file to map
              Args:
                  path: (str) where in zip to write file
                  title: (str) content's title
                  source_id: (str) content's original id (optional)
                  description: (str) description of content (optional)
                  author (str): who created the content (optional)
                  language (str): language of content (optional)
                  license: (str) content's license (optional)
                  copyright_holder (str): holder of content's license (optional)
                  license_description (str): description of content's license (optional)
                  thumbnail (str):  path to thumbnail in zip (optional)
              Returns: None