We are currently using all 3. At Lincoln we have 6 environments including production that our code moves through DEV, TEST, QA, UAT, PREPROD, then PROD. We have Tealium setup so our Tealium Dev publish environment matches up with our DEV environment. I then use the Tealium QA tag across TEST, QA, UAT, PREPROD. Then we use the Tealium Prod environment in our Production environment.
We've got a three tier environment here at A+E (Dev, Stage, Production), so Tealium's setup aligns perfectly with our existing workflow. We could probably make do with just dev/prod environments for Tealium if we needed to, but on the other hand I don't feel like we'd be able to make efficient use of more than three.