PUT-ASSOC-EQL

(Put-assoc-eql name val alist) returns an alist that is the same
as the list alist, except that the first pair in alist with a
car of name is replaced by (cons name val), if there is
one. If there is no such pair, then (cons name val) is added at
the end. Note that the order of the keys occurring in alist is
unchanged (though a new key may be added).