I have never properly understood attributes.
If an attribute it attached to a block, all subsequent insertions have the attribute.
If I redefine a block, after having added an attribute, the old blocks do NOT have the attribute, to the best of my memory.
I could write some lisp where I select a block and reinsert it, erasing the old block so that I have a block has the desired attributes,
but is there some command I am unaware of that will attach an attribute to existing blocks.