Also the TileAt expression returns -1 if there is no tile, so you can use:
Tilemap.TileAt(Tilemap.PositionToTileX(Sprite.X), Tilemap.PositionToTileY(Sprite.Y)) < 0
Disadvantage here is that the collision box is not checked, but only the exact XY Position. It seems the method with opacity only triggers when the collision box of an object actually touches the collision box of a tile, so it seems to be the much better and simpler solution. I did not know that, so thanks for the tip :)