How about using an "addItemValue" function that will create the item if it doesn't exist or will add a value to an existing item. The example below will work with text/date/number fields:
// add a value to an item on a document
function addItemValue(doc:NotesDocument, itemName:String, itemValue, allowDoubleEntries ) {
allowDoubleEntries = (allowDoubleEntries || false);
var item:NotesItem = doc.getFirstItem(itemName);
if ( item == null ) { //item doesn't exist
doc.replaceItemValue( itemName, itemValue );
} else {
//add value if double entries are allowed (always) or
//no double entries allowed and value isn't present yet
if ( (!allowDoubleEntries && !item.containsValue(itemValue)) || allowDoubleEntries ) {
var values:java.util.Vector = item.getValues();
if (values == null) { //item doesn't have a value yet (e.g. empty string)
doc.replaceItemValue( itemName, itemValue);
} else {
values.add(itemValue);
item.setValues(values);
}
}
}
}