If I understand correctly, and you want to offset an object by the size of its sprite, and make it go back when keys are released, then it should be working as it is, although it should go the wrong directions since you're adding a negative value for every direction.
Maybe you don't see it working because you're multiplying it by delta, and it's not moving, or only barely moving. In this case I don't think you need delta (unless you want to make it move incrementally, but for that you'll have change the code a bit). The reason is that if delta is 0.016, and your sprite is 32 pixels wide, then 32 * 0.016 = 0.51. It will move 0pixels. Or if it's 64 pixels wide, 64 * 0.016 = 1.02, moves it by 1 pixel. If you remove * delta, then maybe you'll see your code working, and the object moving by the amount of pixels the sprite is wide/high.
(You can do print(delta) to know how much delta is, or print(TAILLE_PERSO.x * delta) to see the amount it's moving by.)
About the directions though, when pressing "ui_left" you want to add a negative value (ex: 100 + -32 = 68), and do the same for "ui_up". For the other ones add a positive value. Try it like this:
if (Input.is_action_pressed("ui_left")):
J.x += -TAILLE_PERSO.x # negative x
if (Input.is_action_pressed("ui_right")):
J.x += TAILLE_PERSO.x # positive x
if (Input.is_action_pressed("ui_up")):
J.y += -TAILLE_PERSO.y # negative y
if (Input.is_action_pressed("ui_down")):
J.y += TAILLE_PERSO.y # positive y
(Remove the 5. on the 5th line. That's not part of the code, it's probably a line-counting thing from this board.)
I'm not sure if you're trying to achieve that, or if you're trying to avoid it, and not having the object go back. Are you trying to avoid making it go back?