docs: def insert(self, tag, identifier, parent, data):
          """
          Insert the given meta data into the database
  
          :param tag: The tag (equates to meta_data_id)
          :param identifier: The identifier (a combination of the meta_data_id and the plate value)
          :param parent: The parent plate identifier
          :param data: The data (plate value)
          :return: None
          """
          # First try to add it into the tree
          if self.global_plate_definitions.contains(identifier):
              raise KeyError("Identifier {} already exists in tree".format(identifier))
  
          self.global_plate_definitions.create_node(tag=tag, identifier=identifier, parent=parent, data=data)
  
          # Now try to add it into the database
          with switch_db(MetaDataModel, 'hyperstream'):
              meta_data = MetaDataModel(tag=tag, parent=parent, data=data)
              meta_data.save()
  
          logging.info("Meta data {} inserted".format(identifier))