Is this a good way to map this feature?

Well actually, I would also map it as building:part, but I’d use a building-relation and make sure that the building outlines don’t cover that roof-area. But given that the person asking is likely to be new to the whole theme, I didn’t want to suggest this.

The problem with not using a relation and keeping the roof as building:part is that you’re mapping something that’s not on the ground like if it was covering the ground, which is something I find more incorrect than mapping it as a separate building=roof, but YMMV