Вы путаете роль клиентского кода и серверного кода.
Событие 'onclick' тега привязки будет выполняться только на клиенте.
Ваш код будет отправлен клиенту как:
<a href="somethig" onclick="" >Click on me</a>
Но выполнит на сервере следующее:
session.setAttribute('newAttribute','value');
Теги <%%> означают, что код выполняется на сервере, а не на клиенте.
Поэтому, чтобы это работало, вам нужно выполнить какой-то javascript, чтобы «перезвонить» на сервер, чтобы сигнализировать, что ссылка нажата. Обычно это делается с помощью вызова AJAX на другой странице на сервере.