Here is a complete game for you. There is a new function, DictionaryAdd, that can be used to add new entries and overwrite old, and a start script that shows it in use.
<!--Saved by Quest 5.6.5508.33899-->
<asl version="550">
<include ref="English.aslx" />
<include ref="Core.aslx" />
<game name="test">
<gameid>5d46a2e6-530e-40a3-b929-1f4f2ecbdb97</gameid>
<version>1.0</version>
<firstpublished>2015</firstpublished>
<start type="script">
d = NewStringDictionary()
dictionary add (d, "key1", "value1")
dictionary add (d, "key2", "value2")
dictionary add (d, "key3", "value3")
msg (StringDictionaryItem(d, "key1"))
dictionary remove (d, "key1")
dictionary add (d, "key1", "new value1")
msg (StringDictionaryItem(d, "key1"))
DictionaryAdd (d, "key2", "new value2")
msg (StringDictionaryItem(d, "key2"))
DictionaryAdd (d, "key4", "new value4")
msg (StringDictionaryItem(d, "key4"))
</start>
</game>
<object name="room">
<inherit name="editor_room" />
<object name="player">
<inherit name="editor_object" />
<inherit name="editor_player" />
</object>
</object>
<function name="DictionaryAdd" parameters="dict, key, value">
if (DictionaryContains(dict, key)) {
dictionary remove (dict, key)
}
dictionary add (dict, key, value)
</function>
</asl>