You can use the EXT_direct_state_access instead of bind-to-modify.
glBindTexture(GL_TEXTURE_2D, texId);
glTexImage2D(GL_TEXTURE_2D, ...);
vs glTextureImage2DEXT(texId, GL_TEXTURE_2D, ...);