Associate the value with the key in this map. If this map
previously contained a mapping for the key, the old value is replaced
by the result of applying the given function to the new and old value.
Example:
insertWith f k v map
where f new old = new + old