My workaround is a bit different, because I didn't want to write a script and wasn't sure how long Apple would continue to support AppleScript anyway.
Instead what I do is either:
- tag the fact it's an incomplete album in the metadata, by adding "incomplete_album" in the comments field for the relevant tracks, and then editing the smart playlist settings to exclude tracks which have that.
- remove the track number from single tracks, and then write a rule in the smart playlist to exclude tracks where the track number is blank.
Method 2 is arguably slightly cleaner, though the advantage of the first is that should you ever want to look at your list of partial albums (e.g. to decide which of them you might want to get obtain in full) you can write make a smart playlist that works the other way around and lists only "incomplete_album".
Also, I think a good rule is to never remove metadata except where you know it's inaccurate, better to add additional tags so you can do what you want with them.