So could one say "Angels are not puppy"? No, one would say "Angels are not puppies". Let's make that more intelligible: "Angels are not males". Extended, this becomes "Angels are neither males nor females".
Except "puppy" is only a noun, while in context, "male" and "female" are adjectives. Therefore calling angels "male" is like calling them "divine". Male nor Female.
male/female signify sex and this is more appropriate, while males/females refer to humans and angels are not human.