Yes of course it can. You will generally do it by assigning different material IDs in your 3d modelling application and using a multi/sub-object material (speaking from a 3DS Max pserspective here). Your mileage may vary, of course, depending on the program you use. However, things like the log in your picture are also often just made with one material: The texture will contain space for both the side part of the log and the end parts. In the 3D modelling application, you would then simple assign the UVs of the side polygons to the side texture part of the mesh, and the same for the end parts. Its better to use ats few materials as possible per object, so if they don’t need to have different shaders, always think about this option.
A model is built (before being imported) with a fixed number of “material areas,” called submeshes. A model can can several, but you can’t really add one in Unity.
Like that log – if you told your 3D modeller that you wanted to be swap out just the bark, they’d make it with one material slot for bark, and split out the ends into another material slot. Otherwise they’d just make one “bark+ends” material, since it probably draws faster. If you wanted each end to have a different material, total of 3 counting the bark, they could do that, too.
Splitting part of it into a new material isn’t hard (for a 3D modeller,) but you have to bring it back to the 3D program, make the submeshes, and reimport it.
If you ask can one object have multiple material components in unity, the answer is no.
I guess you want to know how to export textures from blender: Materials and textures from Blender to Unity 3D