It piggybacks on the existing validation spend search to find a second (in the conflict list). Search along the hashmap conflict list is how we implement multimap. A second discovery implies a possible double spend. Adding that to the cache table is necessary so that it can be processed under the total confirmation order, but there are so few (normally zero) to subsequent determination is inconsequential.
(edited)