No, JMS does not work that way.
You interact with queues as a consumer (receives), producer (sends), or browser (peeks). There is no operation for putting back a changed message. If the consumer works in a transaction that gets rolled back, the message will appear to be "put back", but only so because it was waiting in the queue for the transaction's commit.
You could, in theory, create a producer for the same queue you obtained the message, modify it and send it "to yourself" (a message-drive bean?), but that would be a different message, only with similar contents. And it would get to the end of the queue. And it is certainly not recommended to do so.
It is better to persist message data (at least the parts that interest you) in a database and so detect if it's new or redelivered.