Why return?  Perhaps I'm misunderstanding, but shouldn't this function either update or clobber the existing entry?