'Helps set or add to attributes on this item. If you are adding a new
attribute that has yet to be set, it will simply create an attribute
named ``key`` with your given ``value`` as its value. If you are
adding a value to an existing attribute, this method will convert the
attribute to a list (if it isn\'t already) and append your new value
to said list.
For clarification, consider the following interactive session:
.. code-block:: python
>>> item = some_domain.get_item(\'some_item\')
>>> item.has_key(\'some_attr\')
False
>>> item.add_value(\'some_attr\', 1)
>>> item[\'some_attr\']
1
>>> item.add_value(\'some_attr\', 2)
>>> item[\'some_attr\']
[1, 2]
:param str key: The attribute to add a value to.
:param object value: The value to set or append to the attribute.'

def add_value(self, key, value):

    if (key in self):
        if (not isinstance(self[key], list)):
            self[key] = [self[key]]
        self[key].append(value)
    else:
        self[key] = value
