The solution you are describing would work perfectly for sprite-based characters. However, the problem with 3D models is that each texture needs specific UV coordinates for proper placement on the model. This would mean that I would need a texture for each number, in each position, for each tattoo design. Even if implemented like this, it would also mean that each number applied to a character would have it's own mesh with everything transparent but the number, which would hurt performance a lot.
I've been thinking about this recently, and I thought of a approach by making a custom shader that might just do the trick