multiset | UNDEFINED ought to be a supported operation.
Consider
mapping(string:multiset(string)) attributes = ([]);
void add_attributes(string key, multiset(string) attrs)
{
attributes[key] = attributes[key] || (<>); // Init.
attributes[key] |= attrs;
}
Having UNDEFINED | multiset
behave as (<>) | multiset
would remove the need for the initialization.