Got this working now 
if (Gdx.input.isKeyPressed(Input.Keys.LEFT)) {
bRight = false;
player.moveRight(1);
Vector3 po = new Vector3(camera.position);
po.x-=TILEWIDTH/2;
po.y-=4;//TILEHEIGHT/2;
if(checkCollision(po)) {
camera.position.x -= 2; // scroll map left
bLeft = false;
}
else // collision, move up
{
if(displayBlockDiagAbove(false,camera.position))
{
bLeft = true;
camera.position.y += 3;
} else
{
bLeft = false;
}
}
}
if (Gdx.input.isKeyPressed(Input.Keys.RIGHT)) {
bLeft = false;
player.moveRight(1);
Vector3 po = new Vector3(camera.position);
po.y-=4;//TILEHEIGHT/2;
if(checkCollision(po)) {
camera.position.x += 2; // scroll map right
bRight = false;
}
else // collision - how do we go up - go up until no collision
{
// is it clear above block? (water, cave, blank)
if(displayBlockDiagAbove(true,camera.position))
{
bRight = true;
camera.position.y += 3; // scroll map up
}
else
{
bRight = false;
}
}
}
private boolean displayBlockDiagAbove(boolean dir, Vector3 position)
{
int val = dir == true ? 0 : -1;
Vector3 screenSpace = toScreenSpace(position);
int x = Math.round(screenSpace.x)+val;
int y = Math.round(screenSpace.y)+1;
BlankEntity entity = this.worldMap.getBlock(x, y);
if(entity!=null)
{
if(entity.toString().equals(".") || entity.toString().equals("CAVE")
|| entity.toString().equals("WATER") )
{
return true;
}
}
else // entity is null
return true;
return false;
}
The method displayBlockDiagAbove did the trick - as Springrbua suggested, check block diagnally above.
Thanks