Add a stanza in user-prefs for
[role_<role_name>] in user-prefs.conf in system/local or in your app and then use the line
tz = <timezone> . You probably want to test doing it to one user with the Splunk GUI to make sure you are using the correct string for your timezone value or use a library of canonical timezones.
Users Timzone is controlled by the user-prefs.conf file so I do not see a way that you can set timezone based on a users role.
* Specifies the per-user timezone to use
* If unset, the timezone of the Splunk Server or Search Head is used.
* Only canonical timezone names such as America/Los_Angeles should be
used (for best results use the Splunk UI).
* Defaults to unset.