Semantic quibble: what you are talking about is not a bag, it is a set.
A bag is just like a set, except that elements can occur more than once.
You can use a hash to represent a bag, but it's a bit more involved.
One simple implementation could have a key's value indicate the number of times
the key occurs in the bag; but you'd still have to override the hash delete
function so that it decrements the count, and only deletes the key when the
count goes to zero. Another, more obvious, implementation would be to use
an array. Then you'd have to write exists and delete functions.
Hiding all this behind TIE would probably make some sense.
All that being said, you could just use Set-Bag.
We're building the house of the future together.