[subject] + 是不是 + [noun]? [subject] + 是不是 + [predicate]? [statement],是不是?
是不是 also goes in front of a whole predicate, including one with no 是 in it. Here it checks a guess: the speaker thinks they know the answer and wants it confirmed.
吗 asks the same thing with no guess behind it.
Added after a full statement, 是不是 works like the English tag "right?".
是不是 already makes the sentence a question, so it takes no 吗.