def setitem_without_overwrite(d, key, value):
if key in d:<EOL><INDENT>raise OverwriteError(key, value, d[key])<EOL><DEDENT>else:<EOL><INDENT>dict.__setitem__(d, key, value)<EOL><DEDENT>
@param d: An instance of dict, that is: isinstance(d, dict)
@param key: a key
@param value: a value to associate with the key

@return: None

@raise: OverwriteError if the key is already present in d.