<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def add_metadata(self, name, value):
 """Attach a piece of metadata to this sensorgraph. Metadata is not used during the simulation of a sensorgraph but allows it to convey additional context that may be used during code generation. For example, associating an `app_tag` with a sensorgraph allows the snippet code generator to set that app_tag on a device when programming the sensorgraph. Arg: name (str):
 The name of the metadata that we wish to associate with this sensorgraph. value (object):
 The value we wish to store. """


        if name in self.metadata_database:
            raise ArgumentError("Attempted to set the same metadata value twice", name=name, old_value=self.metadata_database[name], new_value=value)

        self.metadata_database[name] = value