depends on what you mean by the entry point. and the answer is in that definition. An operating system will have to have a definition because it has to be in the right mode. so either the operating system will always define arm mode for example and then the code can switch if it wants. Or if you use a file format like elf with an entry point then you MIGHT get away with an even address being arm and an odd address being thumb, matching the bx/blx instruction.
if you are talking one of the cores, then an armv7m will always start and have to remain in thumb mode. armv7a and r will start in arm mode (reset, others are defined in the arm docs, likely arm mode) and then the code can switch.
if you are just trying to disassemble some generic object file then you might not be able to figure it out. visually as a human looking at an arm binary in hex when you see a lot of 0xE's (start of every word) that is likely arm code, 0x6 or 0x7 and not a lot of 0xEs or none (every halfword) then that is probably thumb code. but that is not something you can rely on for this task since the first few instructions is likely going to switch modes if there is a switch going to happen.
also if an elf file you might be able to tell from the block headers, I think that is how the gnu tools figure it out as they certainly dont detect it on the fly. so that is most likely how you want to do this, examine the elf file. if this is a raw binary, just instructions and data...good luck...