<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def set(self, name, value, overwrite=False):
 """ Sets a new value for a given configuration parameter. If it already exists, an Exception is thrown. To overwrite an existing value, set overwrite to True. :param name: Unique name of the parameter :param value: Value of the configuration parameter :param overwrite: If true, an existing parameter of *name* gets overwritten without warning or exception. :type overwrite: boolean """

        if hasattr(self, name):
            if overwrite:
                setattr(self, name, value)
            else:
                self._log.warning("Configuration parameter %s exists and overwrite not allowed" % name)
                raise Exception("Configuration parameter %s exists and overwrite not allowed" % name)
        else:
            setattr(self, name, value)
        return getattr(self, name)