Giving this problem some thought, Ideally the Water main would be on a separate layer
and the Lateral to the Water Meter would be on another layer.
You could then select all water mains in one selection set
select all lateral in another selection set
and lastly select all Water meter blocks in a third selection set.
Given that the "Insert Point" of the water meter block is where the block is inserted
at the end of the line, then you could test each lateral to see if one end point matched
any existing water meter insert points. You could also test each lateral end point with
the intersectwith function to see if it attached to a water main.
If both test failed for a given lateral end then a water meter block is added.
There would be a problem with Water Mains if not on a separate layer. This would only
occur if there was a dead end. If the end of run had a lateral attached then no problem.
One way to identify Water Mains is that they would have more than one intersect.