[4.2] Collection : Add set() function to Collection

Add `set()`function to collection.
`set()` is the equivalent of `put()` but it does not overwrite the value if the key already exists.

(Also added a test for `put()`)