More accurate collision detect with tilemap


Hello guys, i am new to cocos2dx, recently i found some tutorial about collision detecting with tilemap. Basically check position of a sprite, convert it into tileID and if that tile has a collidable property then the sprite can’t move on that tile.
But in some case like there’s a small rock on a big tile, i only want collision detect on that rock, aka player can walk on most part of that tile but cant walk through the part that have the rock.
Can someone show me the basic ideas, sudo code or better a tutorial for this, thanks!